#include <my_header.h>
// 使用kill -9 sign 杀死进程
/* Usage: ./2_signal_捕获 */
// 使用**signal函数**是可以同时注册多个信号。甚至可
// 以把不同的信号的处理函数设置为同一个。
void fun1(int sig_val)
{
    printf("*** 1 ***\n");
}
void fun2(int sig_val)
{
    printf("****2*** \n");
}
int main(int argc, char *argv[]){                                  

    // 捕获信号 ctrl+c 执行func函数
    signal(SIGINT, fun1);

    unsigned int retime = sleep(5);
    printf("%u \n", retime);

    //signal(2, func);
    signal(SIGINT, fun2);
    sleep(5);
    return 0;
}

#if 0

ps1:信号的处理函数,可以在进程执行过程中重新指定,(用新的信号
的处理行为,覆盖旧的处理行为)
ps2: sleep()可能会被信号到达而提前终止 (返回剩余睡眠时间)。
(signal会打断read函数,  执行完信号处理逻辑之后, 重启了read函数)
#endif
